listen on 'localhost' for local services - this helps to support IPv4 only targets but triggered a series of code refactoring