BREAKING COMMIT: changed the `index`, `delete` and `add_or_delete` method names to prevent conflicts with `Model`'s `delete` method (and for naming consistency). Also adding in test models (only if 'test' is in sys.argv) in order for test cases to run properly.