algorithm class seperated into different files