core algorithm class
example project