algorithm skeleton