implement gd