I have been spending the past few days getting oriented bounding boxes implemented, and more specifically with intersection tests set up with rays. In addition, I added a composite shape class to allow entities to be composed of several different shapes at once. Overall, the implementation was fairly straight-forward.
When I added the composite shape to the entities, I allowed them to continue using their standard bounding sphere (which is calculated based on the geometry of the entity) if they don't have a composite shape added into them. The effect is to add a higher precision ray test than the standard bounding sphere while still allowing for existing objects to work in the system as well. The long term plan is to eventually migrate the bounding sphere to be contained within the composite to keep things compact...
Next up will be to add a few new event types for the UI, and I should be ready to use the button system for an application!