abstract factory pattern
gitignore changed a bit
camel examples