changed rendering to happen after async image load. still need to implement scroll