making the structures opaque, since I want to hide its contents from clients.