This looks like quite a hack. Why do we need it?