Moved core concepts to own package