handle successful and unsuccessful moves