Use entry point instead of a separate script

Also, enable a smoke test on Travis CI.
Enable more coverage