modified ver 2.0.0