Project re-structure and code clean up