update
rewrite in OO