The Revealing Module Pattern : Define all  functions and variables in the private scope and return an anonymous object with pointers to the private functionality we wished to reveal as public.