final refactor, examples building