implement some MP events