add gpl3
add main header
add output support
dynamic arrays
add tests
update readme