new plan
generalize objc2java