done, still need tests and readme