BIG REFACTOR
merging big