modularized methods