performs actual convertion