Refactoing of