Restructure, should be final now