fixing small issues
forgot some logging
made callback optional
if move is invalid move the piece back to inital position