first step of deps refactor
second part of deps refactor