final version with split