refact code
work unitTests