bit of a mindf*ck to read :)