Completed source code to interface and unit tests