unit tested with 100% code coverage