Much more compact version