split generation methods