revised frontend