added textures, code still messy and slow