update, fix bugs add remove  and moveToPosition methods