Massive re-arrange for Maven support. DO NOT MERGE OR YOU WILL BREAK YOUR BUILD