Suggested Implementation of #7 

A reasonable first stab at implementing bug #7 

Hopefully the documentation / tests / code style is to your liking