refactor : reduce dependency