add usage and argc check