added some ideas about api