added virtus as dependency for using custom exceptions