first commit, tested on iphone, ipad, android