working but not pretty
clean up