The simplest factories implimentation that works.