Moved lots of logic to LockDataService