Added interface and first basic implementation.