I've talked about it long ago(maybe last year), and just realized this is not solved yet. So I'm gonna dig out my old solution and post it.