reworked covers function