Starting Solution 15. It's kinda big...