fix sub! api function and persistent vector implementation