Initial commit. Still needs tests for insert range, but all should work.