Refactory, introducing static factory method + singleton match