front end  original version