Added Comments and minors bugfixes

The code has been commented and cleaned
[SerializedField] are now public attributes