Feature/api refactoring

This one is work in progress and does neither pass specs nor merge with the core flawlessly. Proceed with caution!