refactor using new super-class SMB::Agent