initial commit
add some basic features