add texture loading, its starting to be fairly functional, if rough