added require and define-datatype keywords