code should be easier to work with now