Re-structured a lot