refactoring + reactive expressions