add default values
implement aggregation types