I am exposing the socket to controllers which requires changing the architecture a bit