make some depends optional