Break Region into its own class with an implementation provided by the library user
Removed the last android dependancy