Yes, it seems better but implementation is quite unpretty.