Many changes and features added.
Committing changes.
Removed unused code.