support generator & change API