Edited :) let me know if anything needs reworking.