No longer require Principal to have init method