First refactor approach towards data driven design pattern