core has to be rewritten