improvement, and not complete spaghetti...