system functions implemented