predefined & inheritance