some advances in API