simplify CodeBundle and move api to backend plugin