completed most of subset 4, except hashes