refactored dependency