Additional functionality

Still not finished, need to rewrite the unit tests, etc.
Probably need to find a sensible example too and add Bootstrap.