fixed cohesion, implemented separation