types should match