Class is ready for use.

Pretty much finished, I should document this but its somewhat self
explanitory