Opaque Data Structures provide a very nice technique to structure systems and they are particularly useful within the functional programming paradigm. With the addition of maps and the -opaque attribute for modules, Erlang is now perfectly suited to get the best of these structures, if you use it properly. In this talk I will show what opaque data structures are, how to use them and why they are so useful even more so if you're developing an open-source library. The talk will be conceptual, but it won't be 100% theory. I'll present examples and tools that allow us to better use the techniques I'm exposing.