defined classes, tables, but still largely untested