Merge razoredge's Work

Although this will probably conflict with the stuff I just added, it looks like razorsedge has done lots of work with OS support and additional tests. 

Thoughts?