dependency best practice