refactor offset calculation so that its handled on the view level, and fix point calculation for mobile touch