Algorithm

alpha version