Updated level 1 initialization and update so there is single level of abstraction