move skip into ``Operation`` class. require a type property in all Operations so that we can simply check for an instance of ``Operation`` here, rather than the if/else