constructor takes config; defaults