Updated to use the new abstract core implementation