before refuctoring