dirty design for field types