Changed to avoid use of extends