instantiation problem resolved
generic factory done