added conditional data structure