much bug, many fix