#4 converter refactored