visit, refact mouse