split controller from move