Initial Commit

Shell of a driver
Rewrite

First proper commit. Should work, but committing to test