initial commit. Code has not been updated or commented. Use at your own risk!