Added some caching, profit: about 7.5 seconds!