Started reworking on this again