move hover check into precondition