Split the source generation strategy