separate visualziation code
add license