# Exposing functions with Passthrough Utility Classes

**URL:** <https://forum.dfinity.org/t/exposing-functions-with-passthrough-utility-classes/6247>\
**Category:** Language Support\
**Tags:** Motoko\
**Created:** [August 1, 2021, 3:36pm UTC](https://forum.dfinity.org/t/exposing-functions-with-passthrough-utility-classes/6247 "2021-08-01T15:36:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [August 1, 2021, 3:36pm UTC](https://forum.dfinity.org/t/exposing-functions-with-passthrough-utility-classes/6247/1 "2021-08-01T15:36:01Z")

</div>

How close are we to being able to do something like below? Maybe we can do it now and I just can’t figure out the signature? Seems pretty important to creating a library of composable utiltities.

Utility.mo

```auto
module{
    public class Utility(){
       var nonce = 0;
       
       //cant do shared here because "a shared function is only allowed as a public field of an actor (This is a limitation of the current version.)"
       public func getNonce() : async Nat{nonce};
    };
}

```

myActor.mo

```auto
import Utility "Utility";
actor class myActor() = this {
     var __utility = Utility.Utility();

     public shared func getNonce() : () -> async Nonce = __utility.getNonce;
};

```

It would also be great to be able to do this for query functions.
