add hot reload