first version

add code for first version