factored out enums, because they blow