some sources modified