Shuffled stuff around, try to bring some structure & best practices