added hot reload functionality