feat: add value type