Added structs for optional boxes.

Added structs for optional boxes to support the data each box holds.
Also added String method to make them compile with current interface.