basic struct defination