added Specs completed, refactored some parts and comments added