solve the problem before
halt at the correct situation and remove bugs
achieve the function aimed