Sounds good! :-)
Yes, you will have to do what I mentioned above which is to trigger on Create and On Change of the regarding. Then of course Check if the Regarding is a Contact or the regarding is an Account and branch from there...if the Regarding is a Contact, check if the Parent Account contains data...etc.