First working GS implementation