start writing the forward and backward APIs