externalized method