Author: David Ghabuzian
--Made some changes