Implement more classes. Needs a lot of bug testing.