finalised Android impl