Refactoring courier to use functional obj construction