1.5.8 refactor