refactored frustrum