make code easier to read refactor
booleans defaults to false if not present