first almost completed version of the building interfaces tutorial