done, I hope
but this solution needs indeed LOT of testing