- refaktoring and update tests