moving keywords into their own model