Use native type validator. Move from extend to clone. Add more tests.