hide inner source struct