fix bug: add context push/pop around call