mouse pickup rewrite