cleaned up and fixed async image loading
added more utils