Is it a reasonable approach to create services using layers where needed, but then to provide convenience wrappers around the methods of that service as plain functions that return Effects / plain Effects to avoid consumers having to use the service directly until it's time to provide?