converter implementation