Many improvements, still working on printing