refactor to new dart layout