This ended up being a mess