UPDATED MORE AND MORE CODE