second version of methods rewrite