refactor some things around and implement methods for generating attribute images