implement base struct.