output and structs