full screenshot implementation