bug fix + tidy up