diff --git a/src/main/java/org/nrg/xnat/configuration/SchedulerConfig.java b/src/main/java/org/nrg/xnat/configuration/SchedulerConfig.java
index 7c6ed90076fae386f0e876e01bd8257e00aad75d..3c7cd76ed63275a24726000f2aad337ff99ca7e0 100644
--- a/src/main/java/org/nrg/xnat/configuration/SchedulerConfig.java
+++ b/src/main/java/org/nrg/xnat/configuration/SchedulerConfig.java
@@ -91,12 +91,12 @@ public class SchedulerConfig implements SchedulingConfigurer {
 //        taskRegistrar.addTriggerTask(resetEmailRequests());
 //        taskRegistrar.addTriggerTask(clearExpiredAliasTokens());
 //        taskRegistrar.addTriggerTask(rebuildSessionXmls());
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("aliasTokenTimeout", String.valueOf(XDAT.getSiteConfigPreferences().getAliasTokenTimeout())));
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("inactivityBeforeLockout", String.valueOf(XDAT.getSiteConfigPreferences().getInactivityBeforeLockout())));
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("maxFailedLoginsLockoutDuration", String.valueOf(XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration())));
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("emailPrefix", String.valueOf(XDAT.getNotificationsPreferences().getEmailPrefix())));
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("host", String.valueOf(XDAT.getNotificationsPreferences().getHostname())));
-        XDAT.getContextService().getBean(NrgEventService.class).triggerEvent(new PreferenceEvent("requireLogin", String.valueOf(XDAT.getSiteConfigPreferences().getRequireLogin())));
+        _eventService.triggerEvent(new PreferenceEvent("aliasTokenTimeout", String.valueOf(XDAT.getSiteConfigPreferences().getAliasTokenTimeout())));
+        _eventService.triggerEvent(new PreferenceEvent("inactivityBeforeLockout", String.valueOf(XDAT.getSiteConfigPreferences().getInactivityBeforeLockout())));
+        _eventService.triggerEvent(new PreferenceEvent("maxFailedLoginsLockoutDuration", String.valueOf(XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration())));
+        _eventService.triggerEvent(new PreferenceEvent("emailPrefix", String.valueOf(XDAT.getNotificationsPreferences().getEmailPrefix())));
+        _eventService.triggerEvent(new PreferenceEvent("host", String.valueOf(XDAT.getNotificationsPreferences().getHostname())));
+        _eventService.triggerEvent(new PreferenceEvent("requireLogin", String.valueOf(XDAT.getSiteConfigPreferences().getRequireLogin())));
         for (final TriggerTask triggerTask : _triggerTasks) {
             taskRegistrar.addTriggerTask(triggerTask);
         }
@@ -121,4 +121,7 @@ public class SchedulerConfig implements SchedulingConfigurer {
     @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
     @Inject
     private List<TriggerTask> _triggerTasks;
+
+    @Inject
+    private NrgEventService _eventService;
 }
\ No newline at end of file
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/AliasTokenPreferenceHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/AliasTokenPreferenceHandlerMethod.java
index c4e681bcbe2f80371be3df8334692a4f183d655b..6e42ebce8e8a2bd6df6a829cc6ffcb54feffebf2 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/AliasTokenPreferenceHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/AliasTokenPreferenceHandlerMethod.java
@@ -6,6 +6,7 @@ import org.nrg.xnat.security.alias.ClearExpiredAliasTokens;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@@ -38,14 +39,14 @@ public class AliasTokenPreferenceHandlerMethod extends AbstractSiteConfigPrefere
 
     private void updateAliasTokenTimeout(){
         try {
-            XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
-            Iterator<Runnable> iter = XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().getQueue().iterator();
+            _scheduler.getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
+            Iterator<Runnable> iter = _scheduler.getScheduledThreadPoolExecutor().getQueue().iterator();
 
             for(ScheduledFuture temp: scheduledAliasTokenTimeouts){
                 temp.cancel(false);
             }
 
-            scheduledAliasTokenTimeouts.add(XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").schedule(new ClearExpiredAliasTokens(_template), new CronTrigger(XDAT.getSiteConfigPreferences().getAliasTokenTimeoutSchedule())));
+            scheduledAliasTokenTimeouts.add(_scheduler.schedule(new ClearExpiredAliasTokens(_template), new CronTrigger(XDAT.getSiteConfigPreferences().getAliasTokenTimeoutSchedule())));
 
         } catch (Exception e1) {
             _log.error("", e1);
@@ -60,4 +61,8 @@ public class AliasTokenPreferenceHandlerMethod extends AbstractSiteConfigPrefere
     private JdbcTemplate _template;
 
     private              ArrayList<ScheduledFuture> scheduledAliasTokenTimeouts = new ArrayList<>();
+
+    @Autowired
+    @Qualifier("taskScheduler")
+    private ThreadPoolTaskScheduler _scheduler;
 }
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/InactivityBeforeLockoutHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/InactivityBeforeLockoutHandlerMethod.java
index da904a6fc16e974ae161a335b38906cc9cec6796..860bdec49fd08a074cf8b36c50e85c9ddafd277d 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/InactivityBeforeLockoutHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/InactivityBeforeLockoutHandlerMethod.java
@@ -7,6 +7,7 @@ import org.nrg.xnat.security.DisableInactiveUsers;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@@ -39,14 +40,14 @@ public class InactivityBeforeLockoutHandlerMethod extends AbstractSiteConfigPref
 
 	private void updateInactivityBeforeLockout(){
 		try {
-			XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
-			Iterator<Runnable> iter = XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().getQueue().iterator();
+            _scheduler.getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
+			Iterator<Runnable> iter = _scheduler.getScheduledThreadPoolExecutor().getQueue().iterator();
 
 			for(ScheduledFuture temp: scheduledInactivityBeforeLockout){
 				temp.cancel(false);
 			}
 
-			scheduledInactivityBeforeLockout.add(XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").schedule(new DisableInactiveUsers((new Long(SiteConfigPreferences.convertPGIntervalToSeconds(XDAT.getSiteConfigPreferences().getInactivityBeforeLockout()))).intValue(),(new Long(SiteConfigPreferences.convertPGIntervalToSeconds(XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration()))).intValue()),new CronTrigger(XDAT.getSiteConfigPreferences().getInactivityBeforeLockoutSchedule())));
+			scheduledInactivityBeforeLockout.add(_scheduler.schedule(new DisableInactiveUsers((new Long(SiteConfigPreferences.convertPGIntervalToSeconds(XDAT.getSiteConfigPreferences().getInactivityBeforeLockout()))).intValue(),(new Long(SiteConfigPreferences.convertPGIntervalToSeconds(XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration()))).intValue()),new CronTrigger(XDAT.getSiteConfigPreferences().getInactivityBeforeLockoutSchedule())));
 
 		} catch (Exception e1) {
 			_log.error("", e1);
@@ -61,4 +62,8 @@ public class InactivityBeforeLockoutHandlerMethod extends AbstractSiteConfigPref
     private JdbcTemplate _template;
 
     private              ArrayList<ScheduledFuture> scheduledInactivityBeforeLockout = new ArrayList<>();
+
+    @Autowired
+    @Qualifier("taskScheduler")
+    private ThreadPoolTaskScheduler _scheduler;
 }
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/MailHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/MailHandlerMethod.java
index 37ad76aeffe5b7d17040425b64dea361eed22fe5..5e5c132d2b6f5ea41c6ddedfbfb72841e1138e56 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/MailHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/MailHandlerMethod.java
@@ -1,6 +1,7 @@
 package org.nrg.xnat.event.listeners.methods;
 
 import com.google.common.collect.ImmutableList;
+import org.nrg.notify.renderers.ChannelRenderer;
 import org.nrg.notify.renderers.NrgMailChannelRenderer;
 import org.nrg.xdat.XDAT;
 import org.slf4j.Logger;
@@ -10,6 +11,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
 
+import javax.inject.Inject;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -38,8 +40,8 @@ public class MailHandlerMethod extends AbstractSiteConfigNotificationsPreference
 
     private void updateMail(){
 		try {
-            XDAT.getContextService().getBean(NrgMailChannelRenderer.class).setFromAddress(XDAT.getSiteConfigPreferences().getAdminEmail());
-            XDAT.getContextService().getBean(NrgMailChannelRenderer.class).setSubjectPrefix(XDAT.getNotificationsPreferences().getEmailPrefix());
+            ((NrgMailChannelRenderer)_mailRenderer).setFromAddress(XDAT.getSiteConfigPreferences().getAdminEmail());
+            ((NrgMailChannelRenderer)_mailRenderer).setSubjectPrefix(XDAT.getNotificationsPreferences().getEmailPrefix());
 
 		} catch (Exception e1) {
 			_log.error("", e1);
@@ -53,4 +55,7 @@ public class MailHandlerMethod extends AbstractSiteConfigNotificationsPreference
     @Lazy
     private JdbcTemplate _template;
 
+    @Inject
+    private ChannelRenderer _mailRenderer;
+
 }
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/ResetFailedLoginsHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/ResetFailedLoginsHandlerMethod.java
index ad0cb875ec05c7438ee33b1cc387387d01d544dd..0e0cbf98bfd268d828a5892b1e62cd27b87822ce 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/ResetFailedLoginsHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/ResetFailedLoginsHandlerMethod.java
@@ -6,6 +6,7 @@ import org.nrg.xnat.security.ResetFailedLogins;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@@ -38,14 +39,14 @@ public class ResetFailedLoginsHandlerMethod extends AbstractSiteConfigPreference
 
     private void updateResetFailedLogins(){
 		try {
-			XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
-			Iterator<Runnable> iter = XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").getScheduledThreadPoolExecutor().getQueue().iterator();
+            _scheduler.getScheduledThreadPoolExecutor().setRemoveOnCancelPolicy(true);
+            _scheduler.getScheduledThreadPoolExecutor().getQueue().iterator();
 
 			for(ScheduledFuture temp: scheduledResetFailedLogins){
 				temp.cancel(false);
 			}
 
-			scheduledResetFailedLogins.add(XDAT.getContextService().getBeansOfType(ThreadPoolTaskScheduler.class).get("taskScheduler").schedule(new ResetFailedLogins(_template,XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration()),new CronTrigger(XDAT.getSiteConfigPreferences().getResetFailedLoginsSchedule())));
+			scheduledResetFailedLogins.add(_scheduler.schedule(new ResetFailedLogins(_template,XDAT.getSiteConfigPreferences().getMaxFailedLoginsLockoutDuration()),new CronTrigger(XDAT.getSiteConfigPreferences().getResetFailedLoginsSchedule())));
 
 		} catch (Exception e1) {
 			_log.error("", e1);
@@ -60,4 +61,8 @@ public class ResetFailedLoginsHandlerMethod extends AbstractSiteConfigPreference
     private JdbcTemplate _template;
 
     private              ArrayList<ScheduledFuture> scheduledResetFailedLogins = new ArrayList<>();
+
+    @Autowired
+    @Qualifier("taskScheduler")
+    private ThreadPoolTaskScheduler _scheduler;
 }
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java
index 89de475e80a89881bb38a31c92fe1411b5a69ee2..d277216474c3e85617215ef41b4e0e7f88d4848b 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java
@@ -10,6 +10,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.mail.javamail.JavaMailSenderImpl;
 import org.springframework.stereotype.Component;
 
+import javax.inject.Inject;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -38,11 +39,11 @@ public class SmtpHandlerMethod extends AbstractNotificationsPreferenceHandlerMet
 
     private void updateSmtp(){
 		try {
-            XDAT.getContextService().getBean(JavaMailSenderImpl.class).setHost(XDAT.getNotificationsPreferences().getHostname());
-            XDAT.getContextService().getBean(JavaMailSenderImpl.class).setPort(XDAT.getNotificationsPreferences().getPort());
-            XDAT.getContextService().getBean(JavaMailSenderImpl.class).setUsername(XDAT.getNotificationsPreferences().getUsername());
-            XDAT.getContextService().getBean(JavaMailSenderImpl.class).setPassword(XDAT.getNotificationsPreferences().getPassword());
-            XDAT.getContextService().getBean(JavaMailSenderImpl.class).setProtocol(XDAT.getNotificationsPreferences().getProtocol());
+            _mailSender.setHost(XDAT.getNotificationsPreferences().getHostname());
+            _mailSender.setPort(XDAT.getNotificationsPreferences().getPort());
+            _mailSender.setUsername(XDAT.getNotificationsPreferences().getUsername());
+            _mailSender.setPassword(XDAT.getNotificationsPreferences().getPassword());
+            _mailSender.setProtocol(XDAT.getNotificationsPreferences().getProtocol());
 
 		} catch (Exception e1) {
 			_log.error("", e1);
@@ -56,4 +57,7 @@ public class SmtpHandlerMethod extends AbstractNotificationsPreferenceHandlerMet
     @Lazy
     private JdbcTemplate _template;
 
+    @Inject
+    private JavaMailSenderImpl _mailSender;
+
 }
diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/UpdateSecurityFilterHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/UpdateSecurityFilterHandlerMethod.java
index 59310bf1df99114f288813cf62078cd6293fda5b..64797f5869add187066ab4ed64f27ae79968435b 100644
--- a/src/main/java/org/nrg/xnat/event/listeners/methods/UpdateSecurityFilterHandlerMethod.java
+++ b/src/main/java/org/nrg/xnat/event/listeners/methods/UpdateSecurityFilterHandlerMethod.java
@@ -11,6 +11,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
 import org.springframework.stereotype.Component;
 
+import javax.inject.Inject;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -38,10 +39,8 @@ public class UpdateSecurityFilterHandlerMethod extends AbstractSiteConfigPrefere
     }
 
     private void updateSecurityFilter(){
-        FilterSecurityInterceptor interceptor = XDAT.getContextService().getBean(FilterSecurityInterceptor.class);
-        FilterSecurityInterceptorBeanPostProcessor postProcessor = XDAT.getContextService().getBean(FilterSecurityInterceptorBeanPostProcessor.class);
-        if(interceptor!=null && postProcessor!=null){
-            interceptor.setSecurityMetadataSource(postProcessor.getMetadataSource(XDAT.getSiteConfigPreferences().getRequireLogin()));
+        if(_interceptor!=null && _postProcessor!=null){
+            _interceptor.setSecurityMetadataSource(_postProcessor.getMetadataSource(XDAT.getSiteConfigPreferences().getRequireLogin()));
         }
 	}
 
@@ -51,4 +50,11 @@ public class UpdateSecurityFilterHandlerMethod extends AbstractSiteConfigPrefere
     @Autowired
     @Lazy
     private JdbcTemplate _template;
+
+    @Inject
+    private FilterSecurityInterceptor _interceptor;
+
+    @Inject
+    private FilterSecurityInterceptorBeanPostProcessor _postProcessor;
+
 }