do not assume callee.caller always exists