upward compatibility & downward compatibility