Conform to unit testing exceptions best practices
Move tests into separate source folder
Refactor