add broken attributes check, refactor some classes, update reflectlib