cleaned code based
cleaned code based