added cohesion and separation