Refactor to subclass array.
Add tests and update README.md to reflect them.