refactor to separate concerns - also added images to project