begin ghk implementation