-updated @Override methods
-some refactoring