interface for the programs