algorithms collection from various sources