added notnull constraint