updated with many changes. Trying to do mouse movement internally from viewer.