this wraps everything and then returns, so just do it and make it easier to follow without the nesting