tests and coverage added