more refactoring of followings