Refactoring
Updated to be able to change IDAT chunk size
Added a little spec