design algorithms according to specifications;