add AdaptTo util class