Add internal functions/aggregators interfaces and partial implementation
Revise the coding framework and add more implementations