First commit - Initial implementation

First stab at implementing this