add third layer implementation