meta newline fix
meta tab fix
meta: changed ProgrammingError to inherit object and not Exception
added design pattern factory