refactoring: encapsulates more
specs: adds a spec to make sure the constructor param is cloned