trying to make this more machine agnostic