Refactor out locking to service, to get rid of that awful event handler