A method of providing a Global Platform, GP, compliant Trusted Execution Environment, TEE, comprising: executing an application stored in a memory device, the application including a client application, CA, and a trusted application, TA, wherein executing the application includes running the CA in a client process and the TA in a TEE host process, the client process and the TEE host process being separate; receiving using the TEE host process a request from the client process to open a session, wherein the request includes an identifier of the TA; determining a TA enclave (401 1 -401 n) associated with the identifier using a GP Trusted Services enclave that is included in the TEE host process, wherein the GP Trusted Services enclave provides trusted services for TAs and wherein said trusted services include invocation and lifecycle management of TA enclaves (401 1 -401 n), secure TA to TA communication, and book-keeping individual TAs information such as secure store management; loading in the TEE host process the TA enclave (401 1 -401 n) associated with the identifier to establish the session using the GP Trusted Services enclave; receiving using the TEE host process commands to be invoked in the TA enclave (401 1 -401 n) and a set of parameters needed for the commands, wherein the commands and the set of parameters are from the client process; and executing the commands in the TA enclave (401 1 -401 n) associated with the identifier using GP Internal APIs, wherein the GP Internal APIs include TEE Internal APIs, which are a set of programming interface that is used by TAs for secure services defined in the GP specification, wherein the TEE Internal APIs include APIs for access to cryptography, time, arithmetic, storage, and user interface, UI, services, wherein the executing the commands in the TA enclave (401 1 -401 n) associated with the identifier using GP Internal APIs further comprises: implementing the GP Internal APIs in platform services enclaves, PSEs, included in an Architectural Enclave Services, AES, process coupled to a security processor, wherein the AES process is separate from the client process and the TEE host process; or implementing the GP Internal APIs using a GP trusted Run Time System, RTS, and native trusted RTS included in the TA enclave (401 1 -401 n). executing an application stored in a memory device, the application including a client application, CA, and a trusted application, TA, wherein executing the application includes running the CA in a client process and the TA in a TEE host process, the client process and the TEE host process being separate; receiving using the TEE host process a request from the client process to open a session, wherein the request includes an identifier of the TA; determining a TA enclave (401 1 -401 n) associated with the identifier using a GP Trusted Services enclave that is included in the TEE host process, wherein the GP Trusted Services enclave provides trusted services for TAs and wherein said trusted services include invocation and lifecycle management of TA enclaves (401 1 -401 n), secure TA to TA communication, and book-keeping individual TAs information such as secure store management; loading in the TEE host process the TA enclave (401 1 -401 n) associated with the identifier to establish the session using the GP Trusted Services enclave; receiving using the TEE host process commands to be invoked in the TA enclave (401 1 -401 n) and a set of parameters needed for the commands, wherein the commands and the set of parameters are from the client process; and executing the commands in the TA enclave (401 1 -401 n) associated with the identifier using GP Internal APIs, wherein the GP Internal APIs include TEE Internal APIs, which are a set of programming interface that is used by TAs for secure services defined in the GP specification, wherein the TEE Internal APIs include APIs for access to cryptography, time, arithmetic, storage, and user interface, UI, services, wherein the executing the commands in the TA enclave (401 1 -401 n) associated with the identifier using GP Internal APIs further comprises: implementing the GP Internal APIs in platform services enclaves, PSEs, included in an Architectural Enclave Services, AES, process coupled to a security processor, wherein the AES process is separate from the client process and the TEE host process; or implementing the GP Internal APIs using a GP trusted Run Time System, RTS, and native trusted RTS included in the TA enclave (401 1 -401 n). implementing the GP Internal APIs in platform services enclaves, PSEs, included in an Architectural Enclave Services, AES, process coupled to a security processor, wherein the AES process is separate from the client process and the TEE host process; or implementing the GP Internal APIs using a GP trusted Run Time System, RTS, and native trusted RTS included in the TA enclave (401 1 -401 n).