simplifies, cleans up. still designing the api.