Refactored the Shield API a bit