created classes

some of these might be combined or unused. but it gives us a decent
outline