just the minimum required frontend :p