refactor(assert): split checking and asserting
feat(collection): type checks and minor functionality