[#5, #8] - Refactor the code and tests

- Add helper methods
- Use `client` instead of `user`
- Call Timecop with a block in tests
- Add DEFAULT_CONFIGURATION_BLOCK for defining defualt configuration block
- Remove ExternalMemory class for testing external data strorage