add helper function
add copyright
add copyright