[CORE] Add block type definition
[CORE] Function are now composed of blocks