seperated out defs