added userParam for callbacks