Further tweaking including speed + tidying up