started as a random exercise that ended up being really fun so...