move utils out of header
finish implementing compund data type