update to new Service class for much cleaner code