restructred the source code and updated dockerfile