all stories complete, needs some refactoring