Refactor kernel. Protected methods have list of components parameter
instead array.