first implementation of guide