Split up the two classes, added some more control functions