refactoring and some stuff