Final added. Full implement