Heavy Clean up and Changes