extract osx

massive changes centered around the extract functions.

we really need to rewrite all exceptions