new clases and interfaces 3 attempt