refactored obj file processor