replace signal/slot with metaobject::invokeMethod