make NoOp's constructor private as it's a singleton