refactored whole library, every test now lives in separate class, better composition (array tests)