sketching out an API