refs #1 recursive design & charset convertion