Change the while init'ing thing, fairly happy with it this time