add requirements
add gitignore
sample implementation