[Detail] Further decomposition.

It's very dirty at this moment - need some love.
[Detail] Significantly simplified fallback implementation.
[Detail] More convenient interface.