In my last article, I introduced the concept behind Facelets and showed you how to create and manipulate its HTML-style templates and reusable composition components. In this article, I build on that discussion, using many of the same examples and components I introduced then. For starters, I show you a pain-free way to do Internationalization using a Facelets expression language (EL) function. Next, I show you how to create reasonable defaults and custom logic tags. Finally, I show you how to do lightweight metaprogramming in Facelets.