tidied up by projection