multiple function implement