adding interfaces and other beginnings