make it work with require