reworked most everything