wrapper functions are redundant