modified some sources