#2 unnecessary code removed