edited and compiled