new abstract & util layout