Refactoring to use a consistent constructor pattern