this is moved down to execute to ensure other class can be derived from this without requiring a class option