wrapper functions implemented