external library for algorithm