Upgrade/Refactoring/Capabilities

As i suggested before here is my pull request for cleaning up, adding capability and so on :)
Maybe i can write some specs for the next run as well...