Broken by exceptions. huge revision underway