add readme - this is the spec
Basic functionality complete
code cleaned up, comments added
added self testing and cleaned up code a little