Added operation factory method