seems works but there is a bug any where