add factories' first draft
add gitignore
throw error if trying to access an undefined ComponentDefinition or override an existing definition