added a shit ton of stuff like walking back compile scopes to get memory addresses