Still in progress. Needs comments, cleaning up and documentation.