clean up update_position.

cleaned up the update_position.  Added some specs.

@kmcphillips @qq99