more  programming framework refactoring