trap reimpl