Pretty fun solution