feat(base): add base controllers, factories