factory created based on url