moved the rest of the project over to classes. Needs a little more
cleaning though. but the basis is there.