done some design changes about to try and implement less