Added adaptive OP routine