It's unordered and I've taken a few shortcuts but it's working