abstract launcher