Major refactor part 3