use argument parser
use an entry point