sensible abstraction
changed shutdown port option method to protected