streamlined w/ fewer helper functions