require dependencies in correct order