lots of work on the initial prototype