separate visual logic from assignment logic