not sure if similar functions now exist due to refractoring