finished update, needs testing