Generic API initial commit

Change-Id: Ia8bf21077ec1c9ff58ce85e58d3a40fb9cc6eef4