adding all the usual boring init stuff