Switch to angular, add regions

Resolve #1