add useful function
remove extra function invocation