use string join function
add abstract