Added: initial AwakeReaderService implementation with tests