this was actually much quicker to code than anticipated

