Create separate structs for each node type