Algorithm description