After further testing it turns out that Trap() have too many implementation details which makes it cumbersome to be shared. Instead, it's easier to make it into wrapper over shared functions. Change-Id: I8a3c62bcdf4286f8127c5b6d8dee6d740aca23b9