Separate door communication into separate class; other cleanup