added new principle and factory definitions
fixed typo