Initial commit. Implemented all, but dither is incorrect