suggest rewrite this method