Huge update and cleanup

Too many things to describe, try it instead ;)