some refine
add method