implementing more helper stuff