compiles, unit tests pass, needs some qa work