automatically conversion
add tests and documentation