curr elem in struct list + refactor