more changes to optimise