Refactor construction logic