some comment, some refactoring particulary on button methods, defineRemoveLastChar() need to be implemented