Simplify design by removing PendingElement and WorkingElement interfaces
Create isPending method
Use decorator to remove duplication and follow SRP