add repository interface
fix license header