still, some bug fix, but it should work