Move more code into operation

Change-Id: Iaa51a778eb0d3a8889f4bebfae499299eae5c751
New Abstract classes, lots of cleanup

Change-Id: Ib5a18ca079f7f01e70b4836e7ec8790fb8d991b7