Added mobile support
Implemented via callback instead of events