destruct always return an array