my idea of api - should be much more discussed