added interception and extended dispose