Facotry.SimpleFactory Pattern