further decoupling of theme engine from main IO