Total rewrite to use decorations

I'm making this pull request now so people can easily see the changes. And as I want to give this a test run before unleashing it to the world.

I plan to add some specs before I merge.

[#23]