add license file
add requirements
refactor