more modularization
adding new utility methods