add readn fn
add ignore