working on calling
ignored unfinished macros
use int as id and size
add data.c, ignored some warning