major rework
changes
restructuring
update gitignore
resolve merge conflict
fix merge conflict