styles and js must be internally generated