add approach 3 with parallel loading
update Makefile and header file