Legal moves

Implements #42