better exception handling
make the listen port configurable