Factories with callbacks
Clean up requires in helpers