MOre specs and start refactoring Document