Split generate method