use the same interface