This requires #31 to be implemented first, in order to reuse (liveview) components effectively, for better composability.