more stuff redo recurison