Finished

Now actually solves the problem.
Comments updated

Updated header comments