simplified the API, stopped abusive usage of protocols