fixed: live reloading