add UserStep model to allow user steps to have state