after code refactor 1