some bugs , a bug remaining