Get basic factory and top level logic in place