This deserved a better readme, more detailed descriptions to follow.