Added many changes, support from android 2.2