will need to do some reworking to get everything to function properly but getting there