Added basic factory test case
Added remianing hash tests
Added more base tests and refactored factory tests to avoid using hash
Added start of list implmentation