refactor to more expandable code
ugh

had to rework how attribute accesses were processed