Expand extension choices

Change some member vars to protected to allow for easier extension