a good set of changes here lets take a look