add case statements for completeness