How does loading and running programs work