introduced interfaces for result classes