mostly functional
add license