end generator