passes initial stupid manual test. good start. still needs robust unit testing