custom frame optional