basic structure of GO tools