initial commit
before removing funcptr
Working function definition
add files