Basic implementation
Add some configurations
Make event handling pluggable
Throw error if default property is not set on init
Remove lodash dependency