use override & final for better code safety
update SupportExt