Made Significant Changes to the API. The API now compiles. This commit is NOT TESTED.