This doesn't return the updated principal object