added c-sharp factory pattern
updated namespace