add new features such as command line support