Use 'noremap' instead of 'map'
Format
Experiment with Vim script for <U> and <O>
Experiment with Undo in Visual mode
Try to return cursor back after "pasting after"