shader classes and image loading - need to write tests