add first implementation of PHL