improved get generic