When would someone want to custom build their own visual interface? What are the advantages of doing this?