Rewrited solution. It is finally alive.