implemented all generators