initial impl
add usage