Moved types into seperate files