added & refactored tests