Refactor radically!!