Full features.

This merge should provide the solution to #127 as well as a lot of new features.