make boxes support more interfaces