reworked types to make it easier to keep track of current records