make required optional dependencies optional