SO MANY FACTORIES ZOMG

Not having to pass the task in the action constructor or action.perform is cool though.