refactor / builder supports