merged #1 fixed many derps. stole exc code