Reworked to be easier to use