added the actual master function