added APDU layer