Good that you're trying to clean this up. Just note that we need to be sure that the player doesn't try to execute several seeks one after another, since this will make the player responses very sluggish. In other words, we need to cancel the previous seeks and make sure that they finish quickly once it is clear that the user wants something else.