first version finish and add license