first API changes, add arg parser & basic types