working on hidden surface removal