modify solver.c and solver.h to hide private interfaces
commit main.c and a data sample, some bugs waiting to be fixed