Refactor constructors