broke up subprocess calls into logical segments