refactored tests: singleton factory, naming. added exception tests