minor changes + begin factory