First pass at hiding struct definitions from users