add scala collection support
format code
add more description