Initial commit. Ready for use but tests need to actually verify output