Created ComponentOperation

- decoupled the dependency between components