Exposed more functions via the programmatic api and added specs