Starts refactoring according to communications

Also adds a lengthy explanation of communications.