subexpressions are stored in list to avoid resulution errors