add specs and coverage