added wakeup callback