first drafts of some classes. I currently have no hardware to test the code, but it compiles in a test environment