Refactoring boundary to use functional obj construction