Solution is a bit too high level