added hooks interface