make soem stuff optional