Hi,
I had to do something similar. I recommend reading the source, see what parts change and try to swap them. If you want to change behaviour entirely, just redefine the appropriate route. If you want to change specific things, take advantage of the container since most dependencies are coded to an interface. Extend the class with the behaviour you want to change, override and register it in your providers.
Good luck!