First commit
Many changes and clean up