new py files for better organization and some formatting
Big update