Application api - to be implemented by applications