move evaporate lib into factory and improve an example