first classes interfaces and tests