Major refactor and rename new naming conventions