well, i'm fairly happy with this implementation of readable()