Use getEffectiveUserName instead of getLoginName
Overhauled the dependency system