Initial file commit

Should compile and run as is. No documentation yet.