Require layers
Adding change event
Simplifying clear/append detection
Adding tests