simplified the core API and removed secondary functionality