refactored ConfigParser