adding all new stuff with MP1 and MP2 integrated in CPP