completed test suite but additions are welcome