turning main into a signal, basic isValidMove predicate