clean up API
add component.json
docs