exclude specs from coverage
added more specs and some refactoring and fixes