update: factory pattern svg