Clean up unused Port interfaces
Use shared_ptr for Port, add port() method