tested on android device, some little code commited, but comented out