initial commit with a bunch of class definitions