Added intersection and subset, improved driver