re-implementation of sharrre
re-implementation of sharrre