def buildElement(self, token):
    
    element = None
      
    if token.function in ["SUBJ", "ICL-SUBJ", "FS-SUBJ"]:
      element = Element(sintax = 'SUBJ', element = 'SUBJ[NP]', argument = 'SUBJECT', relevance = 1)
    elif "ACC-PASS" in token.function or 'refl' in token.semantics:
      element = Element(sintax = 'REFL', element = 'REFL', argument = 'REFLEXIVE.OBJECT', relevance = 2)
    elif "ACC" == token.function:
      element = Element(sintax = 'NP', element = 'NP', argument = 'DIRECT.OBJECT', relevance = 3)
    elif token.function in ['PIV', 'SA', 'PASS']:
      element = Element(sintax = 'PP', element = "PP[%s]" % (token.lemma), argument = 'INDIRECT.OBJECT', relevance = 4)
      if token.function == 'PASS':
        element.argument = 'PASSIVE.AGENT'
    elif "ADVL" == token.function and not "ADV" in token.morphos:
      element = Element(sintax = 'PP', element = "PP[%s]" % (token.lemma), argument = 'ADVERBIAL.ADJUNCT', relevance = 4)
    elif "DAT" == token.function:
      element = Element(sintax = 'DAT', element = "DAT", argument = 'PRONOMINAL.INDIRECT.OBJECT', relevance = 2)
    elif token.function in ["FS-ACC", 'ICL-ACC']:
      element = Element(sintax = 'OCL', element = "OCL", argument = 'CLAUSAL.DIRECT.OBJECT', relevance = 3)
    elif token.function in ["SC", 'ICL-SC', 'FS-SC', 'OC', 'ICL-OC', 'FS-OC']:
      element = Element(sintax = 'PR', element = "PR", argument = 'PREDICATIVE', relevance = 4)
      if "PRP" in token.morphos:
        element.element = "PR[%s]" % (token.lemma)
    elif token.morphos and token.morphos[0]:
      if  'N' in token.morphos or  'NUM' in token.morphos:
        element = Element(sintax = 'NP', element = "NP", argument = None, relevance = 3)
      elif "ADJ" in token.morphos:
        element = Element(sintax = 'ADJP', element = "ADJP", argument = None, relevance = 5)
      elif "V" in token.morphos:
        element = Element(sintax = 'SINF', element = "SINF", argument = None, relevance = 5)

    if not element:
      return element
    
    element.position = token.id
    raw, begin, end = token.getPhrasalCore() 
    element.begin = begin
    element.end = end
    element.raw = raw

    return element