better format
better logging
Use the utility class ParamChecker to check the parameter as far as possible