junyuan new modifications. submitted by kevin