A4 refactor