split Base#run to methods