this should be using ensure_type too...