Fix #39 - refactor, clean up, update README