byavuguruzaga ibinyoma satani yabeshyeraga imana indirimbo oh jerusalem ya lauryn hill metaobject protocols are also extensively used in software engineering applications