base structer.