Success

works and implements abstract factory pattern
still need to check for possible memory leaks