new update, fleshed out api/cli, refactored setup