Refactored code for algorithm classes

Refactored to allow algorithm display controller to allow controller to
enable and disable buttons