some refactoring + checking price changings