add a license
add type annotations