Moved each program functionality to it's own file