Add progress
* move prototypes to header file
* change struct to typedef