implement Operation class