move operation into base ; add result class back in
added result class back in