continued work on classes, almost done. need tests