rely on external javascripts (for now)