obj loader, materials and refactor