implemented Knight