added reusable ModifierSlot class to handle modifier expiration

see #60