Refactor We will put all the practices here for reference You can check out different branches to observe the diverse implementations Strategy design model - main Abstract modeling - abstract-class