added interface segregation and readmes