Not fully done, but much more structured and more maintainable