some changes
some refactoring and updates