First commit with Service Provider/Repository Pattern.