some modified, some added