rewriting in progress
updated