extra processing functions