Clean up implementation by breaking into two repositories