fileCachePath, rolePath, and databagPath look like they're required to me. Should they really be Optional in the ctor?