move eberon-specific code to separate file