Same code but slightly less retarded.