Refactored without constructors