Huge amount of cleanup and concept changes