utility functions, many based on _part_