make described functions optional