Refactor Core API (as discussed with Atze)