add attr
refactor chars
add pseudo