- require a port
- remove unused code
- support shutdown