Updated with Touch Functionality