first
removed dependency
refactoring