exception catching now matches the namespace
moved request method handling to earlier so that legacy interception can happen
changed error() to protected so it could be extended