completed the design doc, slighly changed the code