quite a few bits to look at here