added boilerplate to 10 and 11, created a new version of 12 as again the old version was not functioning. 20 seconds, relatively slow but uncertain how to optimize