fixed many bug, and can really work