Remove generation methods to separate generation logic completely