this is perhaps a better way to normalise