Can we have a better way to create custom views?