refactored the calling format