clarify when to use serve/ripple