first implementation of abstract convert worker