adding mutation observers and interpolation

- adding mutation observer to listen for added/removed nodes
- adding refresh utility method
- adding custom interpolations
- fixing visibility method