return true when successful