Ported to latest framework