restructuring: type preserving functions in own file