added explicit requires