introduce better comm lib