restructured app so that prototyping new algorithms is super easy