adding implementations for ios and android