OOP Rewrite

Thought it be a good idea to make it object oriented so I've started
gutting it and making the code more efficient and easier to read.