add unsupported code exception
better exception message
bind to any available port - add getter for port