interface prototype