changing api to require less require magic