generate and _generate now take the object they're generating into as an argument. this is laying the groundwork for dependency-based generators