Checkout, update, commit, upgrade

Added new method and a lot of other stuff.
In case of any merge problems let me know please.

Made all the changes you wanted