change file structure
use delegation instead of inheritance because the super implementation is not unknown