It works! Enum completed!
implementing provider pattern!