{quote:m4ktub} I don't think it's a direct consequence of using fluent interfaces, that is, that by implementing fluent interfaces your software component will be automatically well designed. {quote} Couldn't agree more with you, that's why I say that in order for someone to achieve a good fluent interface already needs to have some knowledge about it and how to design it, because just creating a fluent interface doesn't create a good design. {quote:m4ktub} I believe that the API that a component offers is related to the way it was thought and, although creating a fluent interface may help you use the component, it does not change it's inner workings, that is it's design. {quote} Well that might be true, but I still believe that sometimes you can ~~"redesign"~~ a component by joining or separating behaviour in order to ~~refactor the design~~ (notice the italic, not really sure if that's the best term to use) achieving a fluent interface. Although that improvement won't be as much as if the component was fully rewritten thinking in fluent interfaces. {quote:m4ktub} Check Wicket source code as another example. {quote} I don't know Wicket. But I'm gonna check it, thanks!