remove duplicate code
add ParameterEvent