treydock's branch

I have to dive back into this. I think there is a reason why we could not use this and still support the currently supported platforms.