Refactored to delegate model instead of class model with constructors (using Object.create())