Add full support for passing on a turn, refactor validator a bit