application layer and its functions