reorganize some requires