have working tests and some docs; need to implement guts