added more specs and refactored existing ones