separating main programs from their code