new version with updated with needRequest