Reworked design and added new undefined state