Efficient Distributed Algorithms : Better Theory and Communication Compression