new abstact & utils layout