fairly large changes, trimming down method list, making more generic methods