add halt method and handling