Cleaned up the code a bit, added some classes.