modify to meet new requirement