fix bug (now more than one lvalue per class is possible). Reimplement using field hash