revise tests, export constructor, support 2 arg constructor
add examples test