More heavy refactoring and renaming to improve readbility.
More heavy refactoring and renaming to improve readbility.