added a design document to explain design decisions and thought process