Added developers guide to give someone else a head start in working out how this works!