added destruct()