fix: width and height should be optional