[lab5-part1] add cached attributes support and passed part1