text + image + some refactor object subsystem