Final Version w/ comments