1. Added separate modules for client part and the files.
2. Added interfaces for encoders,decoders and file chunks.