push 2

added lots of functionality! :D