add factory and progress on pytest tests passing